home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #142 (1991-10)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #142 (1991-10)(Rhein-Sieg-Soft).adf
/
CLI-Befehle2
/
Source
/
MakeDir.asm
< prev
next >
Wrap
Assembly Source File
|
1991-09-30
|
4KB
|
88 lines
**********************************
* MakeDir V1.1 *
* Written in 1991 by N.Tausch *
* Public Domain *
**********************************
ExecBase: equ 4
OldOpenLibrary: equ -408
CloseLibrary: equ -414
Output: equ -60
Write: equ -48
CreateDir: equ -120
UnLock: equ -90
movem.l a0/d0,-(sp) ; Parameter sichern
move.l ExecBase,a6 ; dos.library öffnen
lea.l DosName,a1
jsr OldOpenLibrary(a6)
tst.l d0 ; war Operation erfolgreich?
beq.s LibraryError ; Nein? Programmende
move.l d0,DosBase ; DosBase sichern
move.l DosBase,a6 ; und gleich nach a6 damit
jsr Output(a6) ; Outputhandle holen
move.l d0,OutputHandle ; und sichern
movem.l (sp)+,a0/d0 ; Parameter vom Stack
subi.b #1,d0
tst.l d0 ; und testen ob überhaupt ein Parameter vorhanden ist
beq.w NoParameter ; Falls nein, dann Fehlertext schreiben
addi.b #1,d0
move.b #' ',-1(a0,d0.l) ; Parameter auf Behandlung vor-
lea Parameter,a1 ; bereiten
jsr Param ; Und Parameter bearbeiten
move.l #Parameter,d1 ; Gleich nach d1 damit
jsr CreateDir(a6) ; Und neues Verzeichnis erstellen
tst.l d0 ; Ist die Operation geglückt?
beq.s Error ; Nein? dann verzweige zu Fehler
move.l d0,d1 ; Lock des Verzeichnisses nach d1
jsr UnLock(a6) ; Und Lock wieder freigeben
move.l OutputHandle,d1 ; Outputhandle nach d1
move.l #Createtext,d2 ; Text nach d2
move.l #Endtext-Createtext,d3 ; textlänge nach d3
jsr Write(a6) ; und schreiben
move.l DosBase,a1 ; dos.library wieder schließen
move.l ExecBase,a6
jsr CloseLibrary(a6)
LibraryError:
clr.l d0
rts ; Programm beenden
Error:
move.l OutputHandle,d1 ; OutputHandle nach d1
move.l #Endtext,d2 ; Fehlertext nach d2
move.l #End2text-Endtext,d3 ; Fehlertextlänge nach d3
jsr Write(a6) ; Text schreiben
rts ; Programm beenden
NoParameter:
move.l OutputHandle,d1 ; Outputhandle nach d1
move.l #Parametertext,d2 ; Text nach d2
move.l #Createtext-Parametertext,d3 ; Textlänge nach d3
jsr Write(a6) ; und Text schreiben
jmp LibraryError ; programm beenden
Param cmp.b #' ',(a0)+ ; Ignoriere alle Leerzeichen
beq.s Param ; vor Begin des Parameters
subq.l #1,a0 ; Wieder eins von a0 abziehen
PWait move.b (a0)+,(a1)+ ; Parameter übertragen
cmp.b #' ',(a0) ; bis ein Leerezeichen kommt
bne.s PWait
clr.b (a1) ; Terminiere Parameter mit 0-Byte
rts ; Zurück
; *************** Daten *****************
DosName: dc.b "dos.library",0
DosBase: dc.l 0
Parameter: ds.b 60
Length: dc.l 0
OutputHandle: dc.l 0
Parametertext:
dc.b "Benutze folgendes Format: <MakeDir Name>",10
Createtext:
dc.b "Ich erstelle ein neues Directory",10
Endtext:
dc.b "Ich kann kein neues Verzeichnis erstellen !",10
End2text:
end